Skip to content

Multi lang support#126

Open
cuzzo wants to merge 52 commits into
masterfrom
multi-lang-support
Open

Multi lang support#126
cuzzo wants to merge 52 commits into
masterfrom
multi-lang-support

Conversation

@cuzzo

@cuzzo cuzzo commented Jun 19, 2026

Copy link
Copy Markdown
Owner

No description provided.

cuzzo and others added 24 commits June 16, 2026 11:26
Improve Decomplex SARIF messages, suppress generated Lua compatibility-prelude noise, and preserve Go name-type struct field types through static evidence.

Document the multi-language Lineage validation pass and the current quality level for Python, TypeScript, Go, Lua, C, C++, C#, Java, Swift, and Kotlin.

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Migrates all remaining Tier 1 detectors (Redundant Nil Guard, State Mesh,
Temporal Ordering Pressure, State-Based Branch Density) to Rust with
strict function-for-function parity with the Ruby gem.

Ensures byte-for-byte JSON compatibility by matching discovery-order
grouping and implementing Ruby regex logic in Rust.

Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
Migrates all Tier 2 detectors to Rust:
- Inconsistent Rename Clones
- Derived-State Staleness
- Implicit Control Flow
- Weighted Inlined Cognitive Complexity
- Locality Drag
- Operational Discontinuity

Strict function-for-function parity maintained with the Ruby source.
Refactored existing Tier 2/Tier 3 detectors (Miner, SemanticAlias) to
ensure identical discovery order and grouping semantics. All tests pass
with byte-for-byte JSON identity.

Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
Migrates the final Tier 3 detectors to Rust:
- False Simplicity
- Fat Unions
- Function LCOM
- Oversized Predicate
- Path Condition
- Sequence Mine (Broken Protocols)

Maintains strict function-for-function parity with the Ruby source.
All 25 comparison tests pass with byte-for-byte JSON identity.

Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
- Refactored co_update.rs and predicate_alias.rs grouping mechanisms
  from O(N^2) array scans to O(N log N) utilizing a hybrid BTreeMap/Vec
  approach, dropping execution time from ~10s to near-zero.
- Capped recursion depth in implicit_control_flow.rs AST traversal to
  prevent stack overflow during nested path evaluations in large files.

Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
Comment on lines +141 to +152
elsif is_memo
"immutable_convention"
elsif all_one_method
"pass_through"
elsif shadow
"shadow_state"
elsif ws >= 2 && rs <= 1
"one_way_state"
elsif ws >= 2 && rs >= 2
"mutable_entity"
else
"immutable_convention"
"one_way_state"
elsif ws >= 2 && rs >= 2
"mutable_entity"
else
when ".c", ".h" then "c"
when ".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx" then "cpp"
when ".cs" then "csharp"
else "ruby"
reader_method_count: 0,
write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq,
read_sites: [],
write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq,
write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq,
read_sites: [],
write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq,
read_sites: [],
Comment on lines +95 to +97
when comment
out << rest[0...comment]
return strip_strings(out)
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Branchmulti-lang-support
Testbedubuntu-latest

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
Benchmarkleak-build-msMeasure (units) x 1e3leak-countMeasure (units)leak-run-msMeasure (units)
benchmarks/concurrent/01_socket_throughput/bench📈 view plot
⚠️ NO THRESHOLD
6.28 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
7.44 units
benchmarks/concurrent/06_dynamic_spawn/bench📈 view plot
⚠️ NO THRESHOLD
5.93 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
38.43 units
benchmarks/concurrent/11_parallel_aggregation/bench📈 view plot
⚠️ NO THRESHOLD
5.95 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
15.48 units
benchmarks/concurrent/18_atomic_counter/bench📈 view plot
⚠️ NO THRESHOLD
5.90 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
5.58 units
benchmarks/inter-clear/04_concurrent_mvcc_fat_struct/bench📈 view plot
⚠️ NO THRESHOLD
6.09 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
165.46 units
benchmarks/sequential/03_alloc_throughput/bench📈 view plot
⚠️ NO THRESHOLD
5.85 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
24.09 units
benchmarks/sequential/08_sort/bench📈 view plot
⚠️ NO THRESHOLD
5.98 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
5.16 units
benchmarks/sequential/13_soa_layout/bench📈 view plot
⚠️ NO THRESHOLD
5.85 units x 1e3📈 view plot
⚠️ NO THRESHOLD
0.00 units📈 view plot
⚠️ NO THRESHOLD
738.34 units
🐰 View full continuous benchmarking report in Bencher

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Diff Coverage Buckets

Diff base: origin/master...HEAD

bucket files additions deletions line cov additions branch cov additions
total 747 118221 7791
src/**/*.rb public functions 0 0 0
src/**/*.rb private functions 0 0 0
src/**/*.rb OTHER 0 0 0
zig/**/*.zig prod 0 0 0
spec/ 1 128 0 not tracked not tracked
transpile-tests/ 0 0 0
tools/ 0 0 0 not tracked not tracked
gems/ 738 117536 7791
zig/**/*-test.zig + vopr/loom harness 0 0 0
*.md 2 113 0
other 6 444 0

Src Ruby Visibility Breakdown

Scope: src/**/*.rb

Files: 163

Counts are nonblank, non-comment Ruby source lines. Protected methods are grouped into OTHER.

bucket lines share
public functions 23637 29.6%
private functions 35640 44.6%
OTHER 20554 25.7%
total 79831 100.0%

Zig Special Coverage Alerts

No added production Zig lines require missing Loom/VOPR/wait-loop coverage alerts.

@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.


def check(input)
cached = input + 1
input = 2
total = cart.total
if total > 100
if cart.discountable?
discount = 10
end
if cart.taxable?
if cart.region
tax = total * 0.2
end
if cart.valid?
if cart.ready?
status = :ready
# frozen_string_literal: true

def phase_shift
a = 1
node
end

private
class TreeSitterLanguageAdapter
private

def effect_lexicon
node.named_children.last
elsif hidden_if?(node)
node.named_children.first
else
Comment thread gems/decomplex/test/examples_oracle_test.rb Fixed
Comment thread gems/decomplex/test/examples_oracle_test.rb Fixed
Comment thread gems/decomplex/lib/decomplex/syntax/adapters.rb Fixed
Comment thread gems/decomplex/lib/decomplex/syntax/python.rb Fixed
Comment on lines +952 to +953
elsif (match = line.match(/\A\s*([A-Z]\w*)\s*=\s*([A-Z]\w*(?:::[A-Z]\w*)*)\b/))
aliases[match[1]] = match[2]
def audit(name)
puts(name)
send(:record, name)
$GLOBAL_STATE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants